Conventional techniques of application execution control for programs run on computer systems rely on static methods such as databases of signatures to determine if a computer can safely run a particular program. Existing application control systems require frequent updates to these databases, and require significant overhead to manage this process. Additionally, their ability to control execution efficiently and correctly reduces as their databases grow. Such approaches utilize significant resources (e.g., memory, CPU, etc.) and additionally have a high management overhead.